package P150;

import java.util.HashMap;
import java.util.Map;

/**
 * @author LiangMu
 * @version \$Id: P16.java, v 0.1, 2024年07月04日 17:45 LiangMu Exp $$
 */
public class P16 {

    public static int romanToInt(String s) {
        Map<String, Integer> map = new HashMap<>();
        map.put("IV", 4);
        map.put("IX", 9);
        map.put("XL", 40);
        map.put("XC", 90);
        map.put("CD", 400);
        map.put("CM", 900);
        map.put("I", 1);
        map.put("V", 5);
        map.put("X", 10);
        map.put("L", 50);
        map.put("C", 100);
        map.put("D", 500);
        map.put("M", 1000);

        int sum = 0;
        char[] chars = s.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            char aChar = chars[i];
            if ((aChar == 'I' || aChar == 'X' || aChar == 'C') && i < chars.length - 1)  {
                String s1 = aChar + String.valueOf(chars[i + 1]);
                if (map.containsKey(s1)) {
                    sum += map.get(s1);
                    i++;
                    continue;
                }
            }
            sum += map.get(String.valueOf(aChar));
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.println(romanToInt("MCMXCIV"));
    }
}
